/**
 * Copyright (C) 2022-2023
 * All rights reserved, Designed By www.tonetn.com
 * 注意：
 * 本软件为www.tonetn.com开发研制，未经购买不得使用
 * 购买后可获得全部源代码（禁止转卖、分享、上传到码云、github等开源平台）
 * 一经发现盗用、分享等行为，将追究法律责任，后果自负
 */
package com.xunyin.modules.maincouponsend.domain;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xunyin.domain.BaseDomain;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @Author xunyinyunshang  <3594419785@qq.com>
 * @date 2022-09-28
 */
@Data
@TableName("t_main_coupon_send")
public class TMainCouponSend extends BaseDomain {
    @TableId
    private Integer id;

    /** 主体Id */
    private Integer mainId;

    /** 主体名称 */
    private String mainName;

    /** 优惠券名称 */
    private String couponName;

    /** 发送数量 */
    private Integer sendNum;

    /** 有效开始时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;

    /** 有效结束时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;

    /** 发放时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date sendTime;

    /** 单次领取数量 */
    private Integer takeNum;

    /** 优惠券Id */
    private Integer couponId;

    /** 单次使用数量 */
    private Integer useNum;

    /** 领取状态 */
    private Integer couponStatus;

    private Integer fixedQrcodeStatus;

    private Date fixedQrcodeUptime;

    private String remark;

    private Date deleteTime;

    private Integer createUserId;

    private Integer updateUserId;

    private Integer status;

    public void copy(TMainCouponSend source) {
        BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
    }
}
